package cn.tedu.csmall.cart.webapi.kafka;

import cn.tedu.csmall.commons.pojo.cart.model.Cart;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

//将当前对象保存到spring容器中
//下面的SpringBoot任务调度才能生效
@Component
public class producer {
    //目标每隔10秒向kafka发送一条消息
    //从Spring容器中获得kafkaTemplate对象
    //我们之前配置的依赖就能获得这个对象

    //kafkaTemplate<{话题名称类型},{传递消息的类型}>

    @Autowired
    private KafkaTemplate<String,String> kafkaTemplate;

    int i=1;
    //fixedRate就是周期调用  10000毫秒
    @Scheduled(fixedRate = 10000)
    public void sendMessage(){
        //实例化Cart对象用于发送
        Cart cart=new Cart();
        cart.setId(i++);
        cart.setCommodityCode("PC100");
        cart.setPrice((int)(Math.random()*200+100));
        cart.setCount((int)(Math.random()*10+1));
        cart.setUserId("UU100");
        //将Cart对象转换为JSON字符
        Gson gson=new Gson();
        String json=gson.toJson(cart);
        System.out.println("发送信息的内容为"+json);
        //执行发送消息
        kafkaTemplate.send("myCart",json);

    }
}
